/*
 * TriangularElement.h
 *
 *  Created on: May 29, 2011
 *      Author: gilang
 */

#ifndef TRIANGULARELEMENT_H_
#define TRIANGULARELEMENT_H_

#include "Element.h"

class TriangularElement: public Element {
public:
		TriangularElement();
		  ~TriangularElement();
		Node *getNode() const;//{return node;};
		void setNode(Node *node); //{this->node=node;};
		Element * getNext();
		void setNext(Element *next); //{this->next=next;}
		Element * getBefore();
		void setBefore(Element *before); //{this->before=before;}
		void setElementDim(double ed); //{this->elementDim=ed;}
		double getElementDim(); //{return elementDim;}
		Vector<double> & getLoadVector();
		Matrix<double> & getStiffMatrix();
		void setLoadVect(const Vector<double> &v);
		void setStiffMatrix(const Matrix<double> &m);
		double operator()(int i,int j);
		Node get(int i);
		double diff(int i);
		void addNode(int i,const Node &n);
		void setMaterial(const Material &mat);
		Material & getMaterial();
		void setLabel(const string &s);
		string getLabel();
		Element * operator=(TriangularElement *t);
		Element& operator=(Element& el);
		double operator[](const int i);
};

#endif /* TRIANGULARELEMENT_H_ */
